2023/12/231386字符

判断数组是否为对称数组

如:[a, b, c, c, b, a] 、 [a, b, c, d, c, b, a]

拿 for 循环来做一下

var arr = ['a', 'b', 'c', 'd', 'c', 'b', 'a'];

function symmetry (arr) {
    var newArr = [];  // 新创建一个数组,拿来做对比
    for (var i = arr.length - 1; i >= 0; i--) {
        newArr.push(arr[i]);
    }
    for (var i = 0; i <= arr.length - 1; i++) {
        if (arr[i] != newArr[i]){
            return false;
        }
    }
    return true;
}
symmetry(arr);  //--> true

从两端进行比对

function isSymmetric (arr) {
    var start = 0, end = arr.length -1;
    while (true) {
        if (start >= end) {
            break;  // 两位记录值碰头退出循环
        }
        if (arr[start] != arr[end]) {
            return false;  // 判断两个数不一致直接返回 false
        }
        start++;  // 开始的记录值向前走一位
        end--;  // 最后的记录值向后走一位
    }
    return true;
}
isSymmetric(arr);  //--> true

接着来优化一下

function isSymmetric (arr) {
    var start = 0, end = arr.length -1;
    while (start < end) {
        if (arr[start] != arr[end]) {
            return false;
        }
        start++;
        end--;
    }
    return true;
}
isSymmetric(arr);  //--> true